
const Sequelize = require('sequelize');

// 1.  连接数据库

// 1-1:配置文件
const conf = {
  host: '47.101.45.245', // 远程地址
  dialect: 'mysql' // 数据库类型
}

// 1-2:实例话Sequelize
const seq = new Sequelize('webchart', 'webchart', 'Ks5Kcy7stRzx24N5', conf)


// 2. 定义表结构：
const Users = seq.define('user', {
  username: {
    type: Sequelize.STRING, // string vahart(255)
    allowNull: false, // 不为空
    comment: '名字' // 注释
  },
  password: {
    type: Sequelize.STRING,
    allowNull: false
  },
  avatar: {
    type: Sequelize.STRING,
    allowNull: false
  }
})
// 用户聊天记录表
const Records = seq.define('record', {
  userId: {
    type: Sequelize.INTEGER, // integer
    allowNull: false, // 不为空
    comment: '用户id' // 注释
  },
  content: {
    type: Sequelize.STRING,
    allowNull: false, // 不为空
    comment: '聊天内容' // 注释
  }
})
// 好友联系表
const Contact = seq.define('contact', {
  userId: {
    type: Sequelize.INTEGER, // integer
    allowNull: false, // 不为空
    comment: '用户id' // 注释
  },
  contactId: {
    type: Sequelize.STRING,
    allowNull: false, // 不为空
    comment: '朋友id' // 注释
  }
})

// 外建
Records.belongsTo(Users, {
  foreignKey: 'userId'
})

// // Contact useid contactid
// Contact.belongsTo(Records, {
//   foreignKey: 'userId'
// })


// Comments.belongsTo(Blog, {
//   foreignKey: 'articleId'
// })

// User.hasMany(Blog, {
//   foreignKey: 'userId'
// })

// seq.authenticate()
// .then(() => {
//   console.log('Ok')
// }).catch(() => {
//   console.log('err')
// })


// force: true 如果当前数据库 有这个uses表，删除在创建
seq.sync({ force: true })
.then(() => {
  console.log('sync ok')
  process.exit()
})

